home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d26 / freetk.arc / TUTORIAL.TXT < prev   
Text File  |  1987-06-16  |  26KB  |  655 lines

  1.  
  2.  
  3.                            F R E E T K    T U T O R I A L
  4.                          ==================================
  5.                 Copyright (c) 1986 by Universal Technical Systems, Inc.
  6.  
  7.  
  8.         FREETK is an equation processing software product which lets you 
  9.         explore and use of some of the essential features of the full 
  10.         TK Solver Plus.  For this tutorial, we will use a sample problem
  11.         involving loan analysis.
  12.  
  13.         Note:  One or more characters describing a single key are enclosed in
  14.         square brackets, e.g., [Enter] for the Enter or Return key, [F3] for
  15.         the function key F3, [;] for the semicolon key, etc.
  16.  
  17.            *  Type:
  18.                 freetk
  19.               and press [Enter] to load the program.
  20.  
  21.         A copyright notice will be displayed for a brief period, after which
  22.         the program will start by itself.  You can press any key to start the
  23.         program immediately.  (If you want to return to DOS after the program
  24.         is loaded, press [/] and choose "Quit" from the option menu.)
  25.  
  26.         Two sheets, the Variable Sheet and the Rule Sheet, are now
  27.         displayed.  The cursor is in the Rule Sheet, conveniently placed for
  28.         the first step in setting up the sample loan analysis problem.
  29.  
  30.         ENTERING RULES IN THE RULE SHEET
  31.  
  32.            *  Type in the equation:
  33.                 price - downpay = loan
  34.               and press [Down-Arrow]
  35.  
  36.         Note that TK automatically entered the variable names on the Variable
  37.         Sheet for you and moved the cursor to the next row down.  (A rule may
  38.         also be entered by pressing [Enter], in which case the cursor remains
  39.         on the same row.)
  40.  
  41.         ENTERING INPUT VALUES
  42.  
  43.            *  Press [;] to switch the cursor to the Variable Sheet -- the
  44.               cursor should appear in the Input field of the variable
  45.               "price".
  46.            *  Type in an amount for the price, say:
  47.                   15500
  48.               and press [Down-Arrow].  (Note that [Down-Arrow] both enters
  49.               the value in the Input field for "price" and moves the cursor
  50.               down one row into the Input field for "downpay".)
  51.            *  Type in a down payment amount:
  52.                 3500
  53.               and press [Enter]
  54.  
  55.         Now you are done with problem formulation and are ready to see how TK
  56.         solves a model, consisting in this case of a single equation.
  57.  
  58.  
  59.  
  60.                                            1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.         SOLVING
  70.  
  71.            *  Press [F9] to solve.
  72.  
  73.         TK will calculate  price - downpay  and display the result in the
  74.         Output field of the variable "loan".
  75.  
  76.         This is what your screen should look like:
  77.  
  78.         ==================== VARIABLE SHEET =================================
  79.         St Input---- Name---- Output-- Unit----- Comment---------------------
  80.            15500     price
  81.            3500      downpay
  82.                      loan     12000
  83.  
  84.  
  85.         ==================== RULE SHEET =====================================
  86.         S Rule---------------------------------------------------------------
  87.           price - downpay = loan
  88.  
  89.  
  90.         TK calculated how much the loan should be.  This is of course very
  91.         simple and could have been figured out with or even without a
  92.         calculator, so let us expand the model.
  93.  
  94.         ADDING A NEW EQUATION
  95.  
  96.            *  Press [;] to switch the cursor back to the Rule Sheet.
  97.            *  On the second line, enter the formula for monthly payment:
  98.                 payment = loan * (rate / (1 - (1 + rate)^-term))
  99.  
  100.         TK added the new variables in the Variable Sheet, and you just need
  101.         to enter input values for some of them in order to obtain a new
  102.         solution.  Before entering values, however, it must be noted that
  103.         this equation is set up to use months for the variable "term" and
  104.         decimal fraction per month for the variable "rate".  Figuring out the
  105.         number of months in a four year term can be done in your head, but
  106.         converting an annual rate of 12.5% to a decimal fraction per month is
  107.         more difficult.  Instead of calculating 12.5/1200 outside of TK and
  108.         entering the value .01041666666666667, you need only type 12.5/1200
  109.         and press [Enter]. TK will automatically calculate the value and
  110.         display it.
  111.  
  112.         ENTERING VALUES FOR NEW VARIABLES.
  113.  
  114.            *  Press [;] to switch the cursor to the Variable Sheet
  115.            *  Enter  12.5/1200  in the Input field for "rate"
  116.            *  Enter  48  in the Input field for "term"
  117.  
  118.         Now you will let TK calculate the monthly payment according to the
  119.         information you gave it.
  120.  
  121.         SOLVING
  122.  
  123.            *  Press [F9] to solve.
  124.  
  125.  
  126.                                            2
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.         TK will calculate the monthly payment and display the value in the
  136.         Output field of the variable "payment".
  137.  
  138.         This is what your screen should look like:
  139.  
  140.         ==================== VARIABLE SHEET =================================
  141.         St Input---- Name---- Output-- Unit----- Comment---------------------
  142.            15500     price
  143.            3500      downpay
  144.                      loan     12000
  145.                      payment  318.95999
  146.            .01041667 rate
  147.            48        term
  148.  
  149.         ==================== RULE SHEET =====================================
  150.         S Rule---------------------------------------------------------------
  151.           price - downpay = loan
  152.           payment = loan * (rate / (1 - (1 + rate)^-term))
  153.  
  154.  
  155.         REVERSE CALCULATION (BACKSOLVING)
  156.  
  157.         Suppose you know how much you can afford for a monthly payment and
  158.         want to know how long it will take to pay off the loan.  Observe that
  159.         you don't have to rewrite any equations when you are using TK.  It
  160.         does not matter to TK whether any particular variable is on the left
  161.         side or the right side of the equal sign, or even if a variable
  162.         appears on both sides of the equal sign.  What was once an unknown
  163.         variable can be made into a known variable by entering a value in its
  164.         Input field, and a new solution can then be found for another
  165.         variable.  All TK has to know is the relationship between the
  166.         variables and it can solve for any of them.  This is 'backsolving' in
  167.         its fullest sense.
  168.  
  169.         CHANGING INPUT VALUES
  170.  
  171.            *  Go to the status (St) field of the variable "term" and press
  172.               [B]  to blank the Input field.  (In effect, this changes "term"
  173.               from a known variable to an unknown variable.)
  174.            *  Go to the Input field of "payment" and enter  350  as the
  175.               monthly payment.  (Note that the value 318.95999 disappears
  176.               from the Output field.  "payment", which used to be an unknown
  177.               variable, is now a known variable.)
  178.  
  179.         Without needing to isolate new unknowns on one side of an equation or
  180.         rewrite an equation in any way, we are now ready for a new solution.
  181.  
  182.            *  Press F9 to solve.
  183.  
  184.         Less the Rule Sheet, which remains the same, this is what your screen
  185.         should look like:
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.                                            3
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.         ==================== VARIABLE SHEET =================================
  202.         St Input---- Name---- Output-- Unit----- Comment---------------------
  203.            15500     price
  204.            3500      downpay
  205.                      loan     12000
  206.            350       payment
  207.            .01041667 rate
  208.                      term     42.636479
  209.  
  210.  
  211.  
  212.         So we see that increasing the monthly payment from 318.96 to 350
  213.         would take nearly half a year off the loan term.
  214.  
  215.         All well and good, except where is there a bank which will lend money
  216.         for a term of 42.636479 months?
  217.  
  218.         SOLVING WITH ITERATION
  219.  
  220.         Of course, you could blank out the Input value for "payment", enter
  221.         an Input value of 42 for "term", and press [F9] to solve for a
  222.         monthly payment of 354.22 on a loan of 42 months (three and a half
  223.         years).  However, a more interesting problem would result from a
  224.         constraint of an absolute maximum of 350 for a monthly payment.
  225.         Assuming you can shop around for different interest rates, how low an
  226.         interest rate would you have to find in order to pay off the loan in
  227.         42 months at 350 per month?  How much lower for a 36 month term?
  228.  
  229.            *  Check that  350  is entered in the Input field for "payment"
  230.            *  Go to the Input field for "rate" and press [Spacebar]
  231.               [Down-Arrow] (this is another way of blanking the Input field)
  232.            *  Enter  42  in the Input field for "term".
  233.            *  Press [F9] to solve.
  234.  
  235.         What went wrong?  An asterisk appeared in the Status (S) field of the
  236.         second rule on the Rule Sheet, indicating that the equation was not
  237.         solved, and nothing showed up in the Output field for "rate".  TK's
  238.         Direct Solver did not find a solution because "rate" appears twice in
  239.         the second rule, whereas the Direct Solver can solve an equation only
  240.         for a single unknown appearing in the equation just once.
  241.  
  242.         TK can handle such a situation by taking a guess at the unknown
  243.         value, and then refining it in successive approximations until the
  244.         error in the rule falls below an acceptably small limit.  This
  245.         process is called iteration.  (Technically speaking, TK's Iterative
  246.         Solver uses a modified Newton-Raphson method.)
  247.  
  248.         The problem can be presented to the Iterative Solver by making "rate"
  249.         a guess variable and assigning it a guess value.  This is easily 
  250.         accomplished with one step:
  251.  
  252.            *  Go to the Status (St) field of "rate", then press  [G]
  253.  
  254.  
  255.  
  256.  
  257.  
  258.                                            4
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.         Note that a  G  appeared in the Status field indicating that "rate"
  268.         is now a guess variable; also, the last value held by this variable
  269.         reappeared in the Input field as a guess value.  (You could enter a
  270.         different number in the Input field, but the last value should give
  271.         the Iterative Solver a good start since it cannot be too far from the 
  272.         correct answer.)  Watch the screen to observe the quick progression 
  273.         of iteration steps, and
  274.   
  275.            *  Press [F9] to solve.
  276.  
  277.         Success! Expressed as a decimal fraction per month, the interest 
  278.         rate which we should look for is .00981224.  This value can be
  279.         multiplied by 1200 to find the equivalent annual percentage rate. 
  280.         Any input field can be used as an on-screen calculator for this
  281.         purpose:
  282.  
  283.            *  Type  [End][Down-Arrow][Right-Arrow]  to move the cursor to
  284.               an Input field on a blank row.
  285.            *  Enter  rate*1200
  286.  
  287.         The value 11.774686 is displayed in the Input field.  The value may
  288.         be left there, but should probably be blanked out because it will not
  289.         remain consistent with later solutions:
  290.  
  291.            *  Type  [Spacebar][Enter]
  292.  
  293.         CONVERTING UNITS
  294.  
  295.         The convenience of the on-screen calculator aside, TK has a better
  296.         way of handling unit conversions.  Every TK variable has two optional
  297.         attributes, the CALCULATION UNIT and the DISPLAY UNIT.  As the names
  298.         indicate, TK performs all calculations with the values in calculation
  299.         units, and displays the values in display units.
  300.         In many TK applications the issue of units may be ignored altogether,
  301.         and all the input and output values may be treated as dimensionless. 
  302.         However, if the units matter (as in the loan model), they have to be
  303.         declared and their conversions defined. 
  304.  
  305.         The calculation unit may be assigned to a variable by entering its
  306.         name in a blank Unit field. The calculation units must be consistent
  307.         with the usage of the variables in the equations. For instance, if we
  308.         have a rule  Area=Width*Length , we shouldn't assign calculation
  309.         units of Area as acres, Width as yards and Length as miles. 
  310.  
  311.         To declare the calculation units in agreement with our loan formula:
  312.  
  313.            *  Enter  mo (for months) in the Unit field of "term"
  314.            *  Enter  df/mo (for decimal fraction per month) in the Unit
  315.               field of "rate"
  316.  
  317.         At this point  mo  and  df/mo  are the display units as well, the
  318.         values of "term" and "rate" are displayed in these units. We may
  319.         change the display unit of "rate" to %/yr:
  320.  
  321.            *  Enter  %/yr
  322.  
  323.  
  324.                                            5
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.         The value of "rate" did not change except for appending a question
  334.         mark (?).  This indicates that the information needed for a
  335.         conversion from the calculation unit (df/mo) to the newly entered  
  336.         display unit (%/yr) was not availale. 
  337.  
  338.         Unit conversions in TK are performed based on information in the Unit
  339.         Sheet, which is empty when the TK program is loaded.  Our goal is to
  340.         make it look like this:
  341.  
  342.         ==================== UNIT SHEET =====================================
  343.         From----- To------- Multiply By-- Add Offset-------------------------
  344.         yr        mo        12
  345.         df/mo     %/yr      1200
  346.  
  347.         
  348.         To bring the Unit Sheet up in the bottom window:
  349.  
  350.            *  Press  [;]
  351.            *  Press  [=]
  352.            *  Press  [U]
  353.  
  354.         Note:  The Select command (=) and the Slash command (/) both display
  355.         option menus.  A choice can be made either by pressing the first
  356.         letter of the desired option, or by moving the cursor over the
  357.         desired option and pressing [Enter].
  358.  
  359.         First, to define a conversion between annual percentage interest
  360.         rate and monthly interest rate as a decimal fraction:
  361.  
  362.            *  Type  df/mo  in the  From  field and press [Right-Arrow]
  363.            *  Type  %/yr  in the  To  field and press [Right-Arrow]
  364.            *  Type  1200  in the Multiply By field and press [Down-Arrow].
  365.          
  366.         Did you notice that upon entering %/yr the question mark in the 
  367.         Output field of the variable "rate" disappeared, and upon entering
  368.         1200 the value got converted to 11.774686 as expected?
  369.  
  370.         Next, to define a conversion between years and months, we can go
  371.         from right to left:
  372.  
  373.            *  Type  12  in the  Multiply By  field and press [Left-Arrow]
  374.            *  Type  mo  in the  To  field and press [Left-Arrow]
  375.            *  Type  yr  in the  From  field and press [Enter]
  376.  
  377.         Let's replace the Unit Sheet in the bottom window by a 'copy' of
  378.         the Variable Sheet, and convert the value of "term" to years:
  379.  
  380.            *  Press [=]
  381.            *  Press [V]
  382.            *  Enter  yr  in the Unit field of "term"
  383.  
  384.         The unit and value of "term" changed automatically in both windows.
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                            6
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.         Every TK variable has its own Variable Subsheet with fields detailing
  400.         the characteristics of the variable, including both Display Unit and
  401.         Calculation Unit fields.  The Calculation Unit field in the Variable
  402.         Subsheet may be used for changing the calculation unit.
  403.  
  404.         ACCESSING A VARIABLE SUBSHEET
  405.  
  406.         Use the Dive command  >  to dive from the Variable Sheet to the
  407.         Variable Subsheet for "rate":
  408.  
  409.            *  Place the cursor anywhere on the row containing the variable
  410.               "rate"
  411.            *  Type  >
  412.  
  413.         The lower window should now look like this:
  414.  
  415.         ==================== VARIABLE: rate =================================
  416.         Status:
  417.         First Guess:
  418.         Input Value:
  419.         Output Value:                11.7746862535996
  420.         Display Unit:                %/yr
  421.         Calculation Unit:            df/mo
  422.         Comment:
  423.  
  424.         Note that the value for "rate" is displayed on the Variable Subsheet
  425.         in the default numeric format with 15 significant digits.  (If you
  426.         cover the value on any sheet or subsheet with the cursor you can read
  427.         the full internal representation with up to 16 significant digits on
  428.         the Status Line at the top of the screen.)
  429.  
  430.         To observe the interconnection between the Variable Sheet and the
  431.         Variable Subsheet for "rate":
  432.  
  433.            *  Enter  df/mo  in the Display Unit field of the Variable 
  434.               Subsheet for "rate"
  435.  
  436.         Note that the value of "rate" in both windows immediately changes 
  437.         from 11.77... to .009812...;  to change it back
  438.  
  439.            *  Enter  %/yr  (in the same field)
  440.  
  441.         The Variable Subsheet may be used for the assignmend of the
  442.         so-called FIRST GUESS. To assign a first guess value for the
  443.         variable "rate":
  444.  
  445.            *  Enter  10  in the First Guess field.
  446.  
  447.         This establishes "rate" as a guess variable whenever it is not
  448.         assigned an input value or cannot be evaluated by the Direct Solver.
  449.         Having assigned a default guess value in the First Guess field on a 
  450.         Variable Subsheet, we are relieved of the chore of typing a  G  in 
  451.         the Status field every time we want to solve a new problem.  In this 
  452.         model, the value of 10 assigned as the First Guess value for "rate" 
  453.         is a good starting point for any practical situation.
  454.  
  455.  
  456.                                            7
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.         Let's try another problem: What interest rate would you have to find
  466.         in order to pay off the loan at $350 per month in only 3 years?
  467.  
  468.            *  Press  [;]  to switch the cursor to the Variable Sheet
  469.            *  Enter  3  in the Input field for "term"
  470.            *  Press  [F9]  to solve.
  471.  
  472.         You would need to find a financial institution offering an interest
  473.         rate of less than 3.2 percent per year.  Good luck. 
  474.  
  475.         SAVING, RESETTING AND LOADING
  476.  
  477.         The current model may be saved to a disk file as follows:
  478.  
  479.            *  Press  [F4]  (this function key is a shorthand for the
  480.               command sequence /SS)
  481.            *  Enter  loan1  in response to the prompt for a filename.
  482.  
  483.         TK usually should be reset before loading another model, although it
  484.         is possible to append a new model onto a current model by loading 
  485.         without resetting first.  To reset all sheets:
  486.  
  487.            *  Type  /RAY  (for Reset, All, and Yes to confirm)
  488.  
  489.         Now load in a new model:
  490.  
  491.            *  Press  [F3]  (shorthand for /SL)
  492.  
  493.         Note that TK remembers the last-used filename and displays it on 
  494.         the Prompt/Error line (second line of the screen). This filename may
  495.         be selected by simply pressing [Enter]. It may also be edited -- to
  496.         select LOAN without the "1" at the end, you could press [Down-Arrow]
  497.         [Backspace] [Enter]).
  498.  
  499.         Also, you can type the filename anew or invoke the display of a Disk
  500.         Index by entering a drive designator and/or a path specification
  501.         and/or a filename containing wildcards. An empty filename invokes the
  502.         display of TK model files in the current directory: 
  503.  
  504.            *  Type  [Spacebar] [Enter]
  505.  
  506.         To select the model LOAN:
  507.  
  508.            *  Move the cursor to the row containing the filename LOAN (not
  509.               LOAN1, which was just saved) and press  [Enter]
  510.  
  511.         The model LOAN is the same as the model just saved except that
  512.         comments have been added and all variables have units.  Comments are
  513.         very useful for model documentation.  The Comment fields in the
  514.         Variable Sheet are usually used for descriptions of the variables.
  515.         Note that comments may be placed on the Rule Sheet even though there
  516.         is no separate field for them.  Anything after a double quote mark
  517.         (") in the Rule field is ignored by solvers, so a comment may follow
  518.         a rule on the same line or may have a line by itself.
  519.  
  520.  
  521.  
  522.                                            8
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.         WHAT TO DO IF AN ERROR OCCURS
  532.  
  533.         An error will occur if you attempt to enter a syntactically incorrect
  534.         rule or if an entry is for some reason invalid for given field.  The
  535.         error message displayed on the Prompt/Error line will usually provide
  536.         sufficient cue for correcting the error and going on. 
  537.  
  538.         Errors may also occur during solution because the model setup or the
  539.         assigned input values led to contradictions in rules or to infeasible 
  540.         operations, such as division by zero, or evaluation of a function
  541.         outside its definition domain (e.g. taking square root of a negative
  542.         argument).  In these cases an error mark, i.e. a 'greater than' 
  543.         symbol (>), will appear in the Status fields of affected rules on 
  544.         the Rule Sheet and related variables on the Variable Sheet.  When an
  545.         error mark in the Rule Sheet is covered by the cursor, a message
  546.         indicating the nature of the error and suggested remedial action is
  547.         displayed on the first line of the screen, the Status Line.
  548.  
  549.         Pressing  [F1]  while an error message is displayed will bring up a
  550.         Help screen related to the error condition.
  551.  
  552.         If an error occurs on attempted entry, or if you start editing an
  553.         entry and change your mind, the previous contents of the field can be
  554.         restored by pressing  [F2].  [F2] will also cancel any menu-based
  555.         command if it has not yet been executed, i.e., if a menu is still on
  556.         the screen.
  557.  
  558.         FURTHER EXPLORATION OF FREETK
  559.  
  560.         This tutorial is necessarily brief and has therefore been focused at
  561.         a step-by-step instruction for using the most important commands, and
  562.         discussion of some basic principles of model design, problem
  563.         formulation, and model resolution.
  564.  
  565.         The commands used in TK are, in the main, self-explanatory thanks to
  566.         the option menus displayed when a command is issued.  The Help file
  567.         contains further information on commands, built-in functions, special
  568.         function keys, syntax, etc.  To access the Help file:
  569.  
  570.            *  Press  [F1]
  571.            *  Press  [I]  to display the Index.
  572.  
  573.         Use the [PgUp], [PgDn], [Up-Arrow] and [Down-Arrow] keys to move 
  574.         through the index and highlight a topic of interest, then press 
  575.         [Enter] to display information about the selected topic.  Additional
  576.         useful information may be found in the abridged TK Solver Reference
  577.         Card in the REFCARD.TXT file provided with FREETK.
  578.  
  579.         You also may explore sample models included in the FREETK package:
  580.  
  581.            LOAN      The simple loan analysis model used in this tutorial.
  582.            MORTGAGE  An expanded loan analysis model to handle mortgages.
  583.            CARPET    Calculating length of carpet or linoleum left on a roll.
  584.  
  585.  
  586.  
  587.  
  588.                                            9
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.            LADDER    Solving the classic problem of finding the width of an
  598.                      alley given the crossing height of two ladders leaning
  599.                      against buildings on opposite sides of the alley.
  600.            LINEAR4   Solution of 4 equations in 4 unknowns, the maximum
  601.                      possible in FREETK if coefficients are given variable
  602.                      names.
  603.            LINEAR8   Use of fixed coefficients on the Rule Sheet to solve for
  604.                      8 equations in 8 unknowns within the FREETK restriction
  605.                      of 16 lines on the Rule Sheet and 32 lines each on the
  606.                      Variable Sheet and Unit Sheet.
  607.            LINREG    Linear regression model.
  608.            SHAFT     Torsion and twist in a cylindrical shaft.
  609.            CIRCUIT   DC circuit analysis.
  610.            POWFACT   Use of complex numbers to calculate power factor
  611.                      correction.
  612.            GEAR      Calculation of various parameters in gear design.
  613.  
  614.         When loaded, these models have a Variable Sheet with a typical setup
  615.         of known and unknown variables awaiting a solution.  After examining
  616.         the whole model to see how it is structured, press  [F9]  to solve.
  617.         As was demonstrated in this tutorial, you can then run new solutions
  618.         after altering the arrangement of known and unknown variables and/or
  619.         changing values of input variables.
  620.  
  621.         The main purpose of FREETK is to give you a taste of rule-based
  622.         programming applied to numeric computation.  TK Solver Plus contains
  623.         many additional features such as:
  624.  
  625.           - lists of values and list solving,
  626.           - user-defined functions,
  627.           - procedural language capability,
  628.           - high resolution graphics,
  629.           - tabular interface including spreadsheet-like interactive tables,
  630.           - numeric formatting, and
  631.           - interface with other programs.
  632.  
  633.         A more detailed description of the features of TK Solver Plus is in
  634.         the FTKINTRO.TXT file in the FREETK package.  This file also contains
  635.         information on the $25.00 "FREETK follow-up package", which includes
  636.         a diskette with 100 TK models as well as "The TK!Solver Book", and on
  637.         a special offer of the full TK Solver Plus.
  638.  
  639.  
  640.         If you have any comments or questions, or would like to place an
  641.         order, call or write us at
  642.  
  643.            Universal Technical Systems, Inc.
  644.            1220 Rock Street
  645.            Rockford, Illinois 61101
  646.  
  647.            1-800-435-7887  (toll free)
  648.            1-815-963-2220  in Illinois
  649.  
  650.  
  651.  
  652.  
  653.  
  654.                                           10
  655.